From beeddef27bd01bbbce8088c2a515358c894fc43d Mon Sep 17 00:00:00 2001 From: Alex Williamson Date: Tue, 15 Apr 2008 11:15:20 -0600 Subject: [PATCH] [IA64] xencomm: fix dirty page leak This patch fixes a dirty page leak for live migration. This is the architecture counter part of 146f214a0e63. Signed-off-by: Kouya Shimura --- xen/arch/ia64/xen/mm.c | 14 ++++++++++++++ xen/include/asm-ia64/config.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/xen/arch/ia64/xen/mm.c b/xen/arch/ia64/xen/mm.c index 5c8c6dd8de..bed11ac04c 100644 --- a/xen/arch/ia64/xen/mm.c +++ b/xen/arch/ia64/xen/mm.c @@ -2903,6 +2903,20 @@ int is_iomem_page(unsigned long mfn) return (!mfn_valid(mfn) || (page_get_owner(mfn_to_page(mfn)) == dom_io)); } +void xencomm_mark_dirty(unsigned long addr, unsigned int len) +{ + struct domain *d = current->domain; + unsigned long gpfn; + unsigned long end_addr = addr + len; + + if (shadow_mode_enabled(d)) { + for (addr &= PAGE_MASK; addr < end_addr; addr += PAGE_SIZE) { + gpfn = get_gpfn_from_mfn(virt_to_mfn(addr)); + shadow_mark_page_dirty(d, gpfn); + } + } +} + /* * Local variables: * mode: C diff --git a/xen/include/asm-ia64/config.h b/xen/include/asm-ia64/config.h index 40a09377ed..ab027ba2c4 100644 --- a/xen/include/asm-ia64/config.h +++ b/xen/include/asm-ia64/config.h @@ -291,4 +291,6 @@ struct screen_info { }; /* Define CONFIG_PRIVIFY to support privified OS (deprecated). */ #undef CONFIG_PRIVIFY +#define CONFIG_XENCOMM_MARK_DIRTY 1 + #endif /* _IA64_CONFIG_H_ */ -- 2.30.2